package com.ltedu.course.service;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ltedu.course.domain.Course;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ltedu.course.domain.dto.CourseDO;
import com.ltedu.course.domain.dto.CourseInfoDO;
import com.ltedu.course.domain.vo.CourseVO;

import java.util.Map;

/**
 * <p>
 * 课程表 服务类
 * </p>
 *
 * @author Jerry
 * @since 2020-11-26
 */
public interface CourseService extends IService<Course> {

    /**
     * 保存课程信息
     *
     * @param courseVo
     * @return {@link Boolean}
     */
    Long save(CourseVO courseVo);

    /**
     * 通过id获取课程信息
     *
     * @param courseId 课程id
     * @return {@link CourseDO}
     */
    CourseDO getCourseById(Long courseId);

    /**
     * 分页查询课程列表
     *
     * @param coursePage
     * @param queryWrapper
     * @return {@link IPage<CourseDO>}
     */
    IPage<CourseDO> coursePageList(IPage<Course> coursePage, QueryWrapper<Course> queryWrapper);

    /**
     * 根据id获取课程确认信息
     *
     * @param id id
     * @return {@link CourseInfoDO}
     */
    CourseInfoDO getCourseInfoById(Long id);
}
